package cn.tedu.spring.resource;

import org.springframework.stereotype.Controller;

import javax.annotation.Resource;

@Controller
public class WeiboMapper {
    /**
     * Resource注解：
     *   1.JDK的标准注解,用于装配对象或接口类型的数据;
     *   2.装配规则:
     *     说明：name参数为IoC容器中Spring Bean对象的名称;
     *     2.1 根据Spring Bean对象名称进行装配[name参数];
     *     2.2 如果未指定name参数,则会使用属性名作为Spring Bean对象名称装配;
     *     2.3 如果属性名和Spring Bean对象名称也不一致,则根据类型进行装配;
     *     2.4 如果根据类型也未装配成功[一个接口多个实现类],则抛出异常.
     */
    //第1步尝试：添加name参数, @Resource(name="resMapperImpl1"),装配成功;
    @Resource(name = "resMapperImpl1")
    private ResMapper resMapper;

    //第2步尝试：不添加name参数,并且属性名改为:resMapperImpl1,装配成功;
    //@Resource
    //private ResMapperImpl1 resMapper;

    //第3步尝试：不添加name参数,属性名改回resMapper,装配失败抛异常[一个接口多个实现类].
    //@Resource
    //private ResMapper resMapper;
}
